/*
 * @Description:
 * @Version: 1.0
 * @Author: wyx
 * @Date: 2023-04-12 20:31:50
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2023-10-01 23:31:44
 * @FilePath: commSerial.hpp
 * Copyright (C) 2023 wyx. All rights reserved.
 */
#ifndef _COMMSERIAL_HPP
#define _COMMSERIAL_HPP

#include <sys/types.h>
#include <sys/stat.h>
#include <signal.h>
#include <poll.h>
#include <mcu_pack/user_inc.h>
using namespace std;


#define UARTCOM
#define MAX_STR 255

#define TX_DATA_LEN (56)
#define RX_DATA_LEN (13)

// after it are the information you want to know
class commSerial
{
private:
    /* 成员变量 */
    struct termios termAttr;
    struct sigaction saio;
    int ifSerial = 0;
    const char *this_port;
    uint32_t this_baudrate;
    int handle;

public:
    /* 成员函数 */
    commSerial(const char *port = "", uint32_t baudrate = B115200);
    ~commSerial();
    void commSerialInit();
    int commSerialRead();
    void commSerialWrite(char *data);
    int commSerialIsopen();
    unsigned char txbuf[TX_DATA_LEN];
    unsigned char rxbuf[RX_DATA_LEN];


/*
    私有成员变量:
        termAttr 和 saio 是两个结构体，可能用于配置串口的属性和处理信号。
        ifSerial 是一个整数，可能用于表示串口是否已经打开。
        this_port 是一个指向字符常量的指针，表示串口的名称。
        this_baudrate 是一个无符号 32 位整数，表示串口的波特率。
        handle 是一个整数，可能用于表示串口的文件描述符或句柄。

    公有成员函数:
        commSerial(const char *port = "", uint32_t baudrate = B115200) 是构造函数，用于初始化 commSerial 类的对象。它接受串口名称和波特率作为参数，如果没有提供参数，默认使用空字符串和波特率为 B115200。
        ~commSerial() 是析构函数，用于在对象销毁时进行清理工作。
        commSerialInit() 是一个用于初始化串口的函数。
        commSerialRead() 用于从串口读取数据。
        commSerialWrite(char *data) 用于向串口写入数据。
        commSerialIsopen() 用于检查串口是否已经打开。

    公有成员变量:
        txbuf 和 rxbuf 是两个数组，用于存储发送和接收的数据。

总体来说，这个类的目的是提供一个简单的接口，用于串口通信，包括串口的初始化、读取和写入数据等功能。
*/

};


#endif
